﻿//SoundLogListener.cs
//Copyright (c) 2013 StockSharp LLC, all rights reserved.
//This code module is part of StockSharp library.
//This code is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.
//See the file License.txt for the license details.
//More info on: http://stocksharp.com

namespace StockSharp.Logging
{
	using System;
	using System.Collections.Generic;
	using System.Windows.Media;

	using Ecng.Collections;

	/// <summary>
	/// Логгер, проигрывающий музыку при получении сообщения.
	/// </summary>
	public class SoundLogListener : LogListener
	{
		/// <summary>
		/// Создать <see cref="SoundLogListener"/>.
		/// </summary>
		/// <param name="fileName">Путь к файлу со звуком, которое будет проиграно при получении сообщения.</param>
		public SoundLogListener(string fileName)
		{
			if (fileName.IsEmpty())
				throw new ArgumentNullException("fileName");

			FileName = fileName;
		}

		/// <summary>
		/// Путь к файлу со звуком, которое будет проиграно при получении сообщения.
		/// </summary>
		public string FileName { get; private set; }

		/// <summary>
		/// Записать сообщения.
		/// </summary>
		/// <param name="messages">Отладочные сообщения.</param>
		protected override void OnWriteMessages(IEnumerable<LogMessage> messages)
		{
			var player = new MediaPlayer();
			player.Open(new Uri(FileName, UriKind.RelativeOrAbsolute));
			player.Play();
		}
	}
}